package com.ruiysoft.service.order;


import com.ruiysoft.controller.order.vo.OrderDeliverVo;
import com.ruiysoft.controller.order.vo.OrderModifyVo;
import com.ruiysoft.controller.order.vo.SplitOrderVO;
import com.ruiysoft.entity.ModelApiResponse;
import com.ruiysoft.pub.core.Result;
import com.ruiysoft.pub.entity.PageInfo;
import com.ruiysoft.service.order.bean.OrderDto;

import java.util.List;
import java.util.Set;

/**
 * Date : 2018/11/27
 *
 * @author WenJialu
 */
public interface IOrderShopService {

	/**
	 * 订单查询
	 * @param shopId
	 * @param status
	 * @param pageStart
	 * @param pageSize
	 * @return
	 */
	PageInfo<OrderDto> findOrders(Long shopId, Set<Integer> status, Integer pageStart, Integer pageSize);

	/**
	 * 查询单个订单
	 * @param shopId
	 * @param orderNo
	 * @return
	 */
	OrderDto findOrder(Long shopId,String orderNo);

	/**
	 * 修订订单金额
	 * @param shopID
	 * @param modifyVo
	 * @return
	 */
	Result updateOrderMoney(Long shopID, OrderModifyVo modifyVo);

	/**
	 * 待发货订单
	 * @param currShopId
	 * @param pageStart
	 * @param pageSize
	 * @return
	 */
	PageInfo<OrderDto> findOrdersWaitingDelivering(Long currShopId, Integer pageStart, Integer pageSize);

	/**
	 * 发货
	 * @param orderDeliverVo
	 * @return
	 */
	Result orderDeliver(Long shopId,OrderDeliverVo orderDeliverVo);

    Result shopOrderSplit(Long currShopId, List<SplitOrderVO> splitOrderVOS);

	Result<ModelApiResponse> shopOrderMergePost(Long currShopId, SplitOrderVO splitOrderVOS);
}
